package com.bidevalution.business.service;

import java.util.List;

import com.bidevalution.dao.entity.BeSectionExpertInfo;
import com.bidevalution.dao.entity.BeSectionExpertProgress;
import com.bidevalution.dao.entity.BeSectionStep;

public interface BeSectionExpertProgressService {
	BeSectionExpertProgress selectByKey(String sectionStepId,String expertId);
	void update(BeSectionExpertProgress beSectionExpertProgress);
	List<BeSectionExpertProgress> selectFinishList(String sectionStepId);
	List<BeSectionExpertProgress> selectList(String sectionStepId);
	Boolean getFinishStatus(String sectionStepId) throws Exception;
	int getFinishStatus(String sectionStepId,String expertId);
	void addProgressList(String sectionId,String submitCode)throws Exception ;
	void addNextProgressList(BeSectionStep beSectionStep,String submitCode);
	List<BeSectionExpertProgress> selectListBySectionId(String sectionId);
	void updateStatus(String sectionId,String stepCode,String status);
	void deleteBySectionId(String sectionId);
	void deleteBySectionIdAndExpertId(String sectionId,String expertId);
	/**
	 * 删除专家评审数据、专家重评时更新评审进度和环节任务执行状态
	 *
	 * @param sectionId
	 * @param stepCode
	 * @param status
	 * @return
	 * @throws Exception
	 */
	void updateStatusById(String sectionId, String stepCode, String status, String newSubmitCode,String delType) throws Exception;
	 void updateStatusByIdAlt(String sectionId, String stepCode, String status, String newSubmitCode,String delType) throws Exception;
	/**
	 * 其他专家是否都已经提交完成
	 * @param sectionStepId
	 * @param expertId
	 * @return
	 * @throws Exception
	 */
	Boolean isOtherExpertFinished(String sectionStepId, String expertId) throws Exception;

	/**
	 * 删除组长评审意见、专家废标说明和中标候选人列表
	 *
	 * @param sectionId
	 * @return
	 * @throws Exception
	 */
	void deleteExpertData(String sectionId) throws Exception;
}
